//
//  feather.h
//  template4
//
//  Created by Xiaochen Lian on 5/16/12.
//  Copyright (c) 2012 University of California, Los Angeles. All rights reserved.
//

#ifndef template4_feather_h
#define template4_feather_h

#include "entity.h"

class CFeather : public IEntity
{
public:
    CFeather(const vec4 &pos, GLfloat width, GLfloat length);
    void set_material(const lighting_struct &material);
    bool is_right();
    void draw(const mat4 &tfm_parent);
    void build_model(const point4 &parent_mass_center);
    vec4 aerodynamics(const bird_status &nstatus, const mat4 &tfm, const double timestep);
    void update(const bird_status &cstatus, const mat4 tfm_parent);
    void init(const bird_status &cstatus);
protected:
    mat4 tfm_from_status(const bird_status &nstatus);
private:
    GLfloat m_width, m_length;
    lighting_struct m_material;
};

#endif
